#include <iostream>
#include <string>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int t;
    cin >> t;
    while (t--) {
        int n;
        string a, b, c;
        cin >> n >> a >> b >> c;

        int la = 0, lb = 0, lc = 0;
        string result;

        // 当三个字符串都还有字符未处理时
        while (la < 2 * n && lb < 2 * n && lc < 2 * n) {
            // 统计当前三个位置中0和1的数量
            int count0 = 0, count1 = 0;
            if (a[la] == '0')
                count0++;
            else
                count1++;
            if (b[lb] == '0')
                count0++;
            else
                count1++;
            if (c[lc] == '0')
                count0++;
            else
                count1++;

            // 选择出现次数更多的字符（至少出现两次）
            char chosen = (count0 >= 2) ? '0' : '1';
            result += chosen;

            // 移动匹配的指针
            if (la < 2 * n && a[la] == chosen) la++;
            if (lb < 2 * n && b[lb] == chosen) lb++;
            if (lc < 2 * n && c[lc] == chosen) lc++;
        }

        // 处理剩余部分
        if (la == 2 * n) {
            // a已经完全匹配，选择b或c中剩余较长的
            if (lb >= lc) {
                result += b.substr(lb);
            } else {
                result += c.substr(lc);
            }
        } else if (lb == 2 * n) {
            // b已经完全匹配，选择a或c中剩余较长的
            if (la >= lc) {
                result += a.substr(la);
            } else {
                result += c.substr(lc);
            }
        } else {  // lc == 2 * n
            // c已经完全匹配，选择a或b中剩余较长的
            if (la >= lb) {
                result += a.substr(la);
            } else {
                result += b.substr(lb);
            }
        }

        cout << result << '\n';
    }
    return 0;
}